\section{联邦拜占庭一致性系统}\label{sec:fba}

本节介绍联邦拜占庭一致性(Federated Byzantine Agreement, FBA)模型。和非联邦一致性协议一样，FBA需要解决更新重复的\footnote{译注：副本(replica)是分布式系统中为数据或服务提供的冗余。}状态的问题，例如事务分类帐或认证树。通过认可应用什么样的更新，节点避免了冲突而不可协调的状态。我们通过一个唯一的{\slot}(slot)来识别更新，这使得我们可以推断出更新依赖。例如，在一个顺序记录的日志中{\slot}可以是连续标号的位置。

FBA系统运行一个可以确保节点认可{\slot}的内容的共识协议。节点$v$在它已经安全地更新了{\slot}$i$所依赖的所有{\slot}之后可以在{\slot}$i$处安全地更新$x$；另外，它相信所有正确工作的节点最终将会认可{\slot}$i$处的更新$x$。外部系统会以不可逆的方式对具体的值作出反应，因此一个节点不能够在之后改变这些值。

FBA系统的一大挑战是恶意的团体可能参与多次并在数量上超过诚实节点。因此，传统的基于占优数量的{\quorum}机制无法适用。取而代之的是，FBA采用一种分布式的方式来决定{\quorum}，这是通过每个节点选择所谓的``{\quorum}切片''来实现的。接下来的子章节讨论了一些例子。最后，我们定义一个共识协议应当希望满足的关键属性：安全性和完整性的。

\input{tex/3-fba-s1}
\input{tex/3-fba-s2}
\input{tex/3-fba-s3}